Coisas¶
Abaixo está um programa Python, dividido em várias peças. Após cada print
, dê o valor que será exibido na tela.
- Se avaliar a instrução
print
resultaria em erro, selecione "error" e insira error
na caixa.
- Se o valor da expressão for uma função ou classe, selecione o tipo apropriado e escreva o nome da função ou classe na caixa.
- Se o valor é uma instância, selecione "instance" e escreva o nome da classe na caixa.
É recomendado desenhar um diagrama de ambiente das instâncias e seus atributos e atualizá-lo conforme avança pelo código.
Parte 1: Coisa 1¶
class Thing:
def set(self, v):
self.x = v
def get(self):
return self.x
a = Thing()
a.x = 6
print(a.get())
Tipo:
Valor:
b = Thing()
a.set(b)
print(a.x)
Tipo:
Valor:
Tipo:
Valor:
Tipo:
Valor:
Tipo:
Valor:
Tipo:
Valor:
Tipo:
Valor:
a.set(1 - a.get().get())
print(a.x)
Tipo:
Valor:
c.set(2)
print(a.get().get())
Tipo:
Valor:
a = Thing()
b = Thing()
a.set(b)
b.set(a)
print(a.x == b)
Tipo:
Valor:
Tipo:
Valor:
Tipo:
Valor:
Tipo:
Valor:
Parte 2: Coisa 2¶
def thing_mangle(arg):
arg.set(arg.get() + 1)
arg.has_been_mangled = True
a = Thing()
print(a.has_been_mangled)
Tipo:
Valor:
a.set(9)
thing_mangle(a)
print(a.get())
Tipo:
Valor:
print(a.has_been_mangled)
Tipo:
Valor:
b = Thing()
b.set(Thing())
b.get().set(9)
print(thing_mangle(b.get()))
Tipo:
Valor:
Tipo:
Valor:
Tipo:
Valor:
c = Thing()
print(thing_mangle(c))
Tipo:
Valor: